<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>dual_quat_to_screw [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_transformations.html">变换</a> / <a href="toc_transformations_dualquaternions.html">Dual Quaternions</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">dual_quat_to_screw</span><span data-if="c" style="display:none;">T_dual_quat_to_screw</span><span data-if="cpp" style="display:none;">DualQuatToScrew</span><span data-if="dotnet" style="display:none;">DualQuatToScrew</span><span data-if="python" style="display:none;">dual_quat_to_screw</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">dual_quat_to_screw</span><span data-if="c" style="display:none;">T_dual_quat_to_screw</span><span data-if="cpp" style="display:none;">DualQuatToScrew</span><span data-if="dotnet" style="display:none;">DualQuatToScrew</span><span data-if="python" style="display:none;">dual_quat_to_screw</span></code> — Convert a unit dual quaternion into a screw.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>dual_quat_to_screw</b>( :  : <a href="#DualQuaternion"><i>DualQuaternion</i></a>, <a href="#ScrewFormat"><i>ScrewFormat</i></a> : <a href="#AxisDirectionX"><i>AxisDirectionX</i></a>, <a href="#AxisDirectionY"><i>AxisDirectionY</i></a>, <a href="#AxisDirectionZ"><i>AxisDirectionZ</i></a>, <a href="#AxisMomentOrPointX"><i>AxisMomentOrPointX</i></a>, <a href="#AxisMomentOrPointY"><i>AxisMomentOrPointY</i></a>, <a href="#AxisMomentOrPointZ"><i>AxisMomentOrPointZ</i></a>, <a href="#Rotation"><i>Rotation</i></a>, <a href="#Translation"><i>Translation</i></a>)</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>T_dual_quat_to_screw</b>(const Htuple <a href="#DualQuaternion"><i>DualQuaternion</i></a>, const Htuple <a href="#ScrewFormat"><i>ScrewFormat</i></a>, Htuple* <a href="#AxisDirectionX"><i>AxisDirectionX</i></a>, Htuple* <a href="#AxisDirectionY"><i>AxisDirectionY</i></a>, Htuple* <a href="#AxisDirectionZ"><i>AxisDirectionZ</i></a>, Htuple* <a href="#AxisMomentOrPointX"><i>AxisMomentOrPointX</i></a>, Htuple* <a href="#AxisMomentOrPointY"><i>AxisMomentOrPointY</i></a>, Htuple* <a href="#AxisMomentOrPointZ"><i>AxisMomentOrPointZ</i></a>, Htuple* <a href="#Rotation"><i>Rotation</i></a>, Htuple* <a href="#Translation"><i>Translation</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>DualQuatToScrew</b>(const HTuple&amp; <a href="#DualQuaternion"><i>DualQuaternion</i></a>, const HTuple&amp; <a href="#ScrewFormat"><i>ScrewFormat</i></a>, HTuple* <a href="#AxisDirectionX"><i>AxisDirectionX</i></a>, HTuple* <a href="#AxisDirectionY"><i>AxisDirectionY</i></a>, HTuple* <a href="#AxisDirectionZ"><i>AxisDirectionZ</i></a>, HTuple* <a href="#AxisMomentOrPointX"><i>AxisMomentOrPointX</i></a>, HTuple* <a href="#AxisMomentOrPointY"><i>AxisMomentOrPointY</i></a>, HTuple* <a href="#AxisMomentOrPointZ"><i>AxisMomentOrPointZ</i></a>, HTuple* <a href="#Rotation"><i>Rotation</i></a>, HTuple* <a href="#Translation"><i>Translation</i></a>)</code></p>
<p>
<code>void <a href="HDualQuaternion.html">HDualQuaternion</a>::<b>DualQuatToScrew</b>(const HString&amp; <a href="#ScrewFormat"><i>ScrewFormat</i></a>, double* <a href="#AxisDirectionX"><i>AxisDirectionX</i></a>, double* <a href="#AxisDirectionY"><i>AxisDirectionY</i></a>, double* <a href="#AxisDirectionZ"><i>AxisDirectionZ</i></a>, double* <a href="#AxisMomentOrPointX"><i>AxisMomentOrPointX</i></a>, double* <a href="#AxisMomentOrPointY"><i>AxisMomentOrPointY</i></a>, double* <a href="#AxisMomentOrPointZ"><i>AxisMomentOrPointZ</i></a>, double* <a href="#Rotation"><i>Rotation</i></a>, double* <a href="#Translation"><i>Translation</i></a>) const</code></p>
<p>
<code>void <a href="HDualQuaternion.html">HDualQuaternion</a>::<b>DualQuatToScrew</b>(const char* <a href="#ScrewFormat"><i>ScrewFormat</i></a>, double* <a href="#AxisDirectionX"><i>AxisDirectionX</i></a>, double* <a href="#AxisDirectionY"><i>AxisDirectionY</i></a>, double* <a href="#AxisDirectionZ"><i>AxisDirectionZ</i></a>, double* <a href="#AxisMomentOrPointX"><i>AxisMomentOrPointX</i></a>, double* <a href="#AxisMomentOrPointY"><i>AxisMomentOrPointY</i></a>, double* <a href="#AxisMomentOrPointZ"><i>AxisMomentOrPointZ</i></a>, double* <a href="#Rotation"><i>Rotation</i></a>, double* <a href="#Translation"><i>Translation</i></a>) const</code></p>
<p>
<code>void <a href="HDualQuaternion.html">HDualQuaternion</a>::<b>DualQuatToScrew</b>(const wchar_t* <a href="#ScrewFormat"><i>ScrewFormat</i></a>, double* <a href="#AxisDirectionX"><i>AxisDirectionX</i></a>, double* <a href="#AxisDirectionY"><i>AxisDirectionY</i></a>, double* <a href="#AxisDirectionZ"><i>AxisDirectionZ</i></a>, double* <a href="#AxisMomentOrPointX"><i>AxisMomentOrPointX</i></a>, double* <a href="#AxisMomentOrPointY"><i>AxisMomentOrPointY</i></a>, double* <a href="#AxisMomentOrPointZ"><i>AxisMomentOrPointZ</i></a>, double* <a href="#Rotation"><i>Rotation</i></a>, double* <a href="#Translation"><i>Translation</i></a>) const  <span class="signnote">
            (
            Windows only)
          </span></code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>DualQuatToScrew</b>(<a href="HTuple.html">HTuple</a> <a href="#DualQuaternion"><i>dualQuaternion</i></a>, <a href="HTuple.html">HTuple</a> <a href="#ScrewFormat"><i>screwFormat</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#AxisDirectionX"><i>axisDirectionX</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#AxisDirectionY"><i>axisDirectionY</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#AxisDirectionZ"><i>axisDirectionZ</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#AxisMomentOrPointX"><i>axisMomentOrPointX</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#AxisMomentOrPointY"><i>axisMomentOrPointY</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#AxisMomentOrPointZ"><i>axisMomentOrPointZ</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Rotation"><i>rotation</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Translation"><i>translation</i></a>)</code></p>
<p>
<code>void <a href="HDualQuaternion.html">HDualQuaternion</a>.<b>DualQuatToScrew</b>(string <a href="#ScrewFormat"><i>screwFormat</i></a>, out double <a href="#AxisDirectionX"><i>axisDirectionX</i></a>, out double <a href="#AxisDirectionY"><i>axisDirectionY</i></a>, out double <a href="#AxisDirectionZ"><i>axisDirectionZ</i></a>, out double <a href="#AxisMomentOrPointX"><i>axisMomentOrPointX</i></a>, out double <a href="#AxisMomentOrPointY"><i>axisMomentOrPointY</i></a>, out double <a href="#AxisMomentOrPointZ"><i>axisMomentOrPointZ</i></a>, out double <a href="#Rotation"><i>rotation</i></a>, out double <a href="#Translation"><i>translation</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>dual_quat_to_screw</b>(<a href="#DualQuaternion"><i>dual_quaternion</i></a>: Sequence[float], <a href="#ScrewFormat"><i>screw_format</i></a>: str) -&gt; Tuple[float, float, float, float, float, float, float, float]</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p>该算子 <code><span data-if="hdevelop" style="display:inline">dual_quat_to_screw</span><span data-if="c" style="display:none">dual_quat_to_screw</span><span data-if="cpp" style="display:none">DualQuatToScrew</span><span data-if="com" style="display:none">DualQuatToScrew</span><span data-if="dotnet" style="display:none">DualQuatToScrew</span><span data-if="python" style="display:none">dual_quat_to_screw</span></code> converts the input unit dual
quaternion <a href="#DualQuaternion"><i><code><span data-if="hdevelop" style="display:inline">DualQuaternion</span><span data-if="c" style="display:none">DualQuaternion</span><span data-if="cpp" style="display:none">DualQuaternion</span><span data-if="com" style="display:none">DualQuaternion</span><span data-if="dotnet" style="display:none">dualQuaternion</span><span data-if="python" style="display:none">dual_quaternion</span></code></i></a>, which represents a 3D rigid
transformation, into the parameters of the corresponding screw.
</p>
<p>For a brief introduction to dual quaternions, the used notation, and the
relationship between dual quaternions and screws, see
<code>“Solution Guide III-C - 3D Vision”</code>.
</p>
<p>If <a href="#ScrewFormat"><i><code><span data-if="hdevelop" style="display:inline">ScrewFormat</span><span data-if="c" style="display:none">ScrewFormat</span><span data-if="cpp" style="display:none">ScrewFormat</span><span data-if="com" style="display:none">ScrewFormat</span><span data-if="dotnet" style="display:none">screwFormat</span><span data-if="python" style="display:none">screw_format</span></code></i></a> is set to <i><span data-if="hdevelop" style="display:inline">'moment'</span><span data-if="c" style="display:none">"moment"</span><span data-if="cpp" style="display:none">"moment"</span><span data-if="com" style="display:none">"moment"</span><span data-if="dotnet" style="display:none">"moment"</span><span data-if="python" style="display:none">"moment"</span></i>, these parameters
are returned in the corresponding parameters <a href="#AxisDirectionX"><i><code><span data-if="hdevelop" style="display:inline">AxisDirectionX</span><span data-if="c" style="display:none">AxisDirectionX</span><span data-if="cpp" style="display:none">AxisDirectionX</span><span data-if="com" style="display:none">AxisDirectionX</span><span data-if="dotnet" style="display:none">axisDirectionX</span><span data-if="python" style="display:none">axis_direction_x</span></code></i></a>,
<a href="#AxisDirectionY"><i><code><span data-if="hdevelop" style="display:inline">AxisDirectionY</span><span data-if="c" style="display:none">AxisDirectionY</span><span data-if="cpp" style="display:none">AxisDirectionY</span><span data-if="com" style="display:none">AxisDirectionY</span><span data-if="dotnet" style="display:none">axisDirectionY</span><span data-if="python" style="display:none">axis_direction_y</span></code></i></a>, <a href="#AxisDirectionZ"><i><code><span data-if="hdevelop" style="display:inline">AxisDirectionZ</span><span data-if="c" style="display:none">AxisDirectionZ</span><span data-if="cpp" style="display:none">AxisDirectionZ</span><span data-if="com" style="display:none">AxisDirectionZ</span><span data-if="dotnet" style="display:none">axisDirectionZ</span><span data-if="python" style="display:none">axis_direction_z</span></code></i></a>, <a href="#AxisMomentOrPointX"><i><code><span data-if="hdevelop" style="display:inline">AxisMomentOrPointX</span><span data-if="c" style="display:none">AxisMomentOrPointX</span><span data-if="cpp" style="display:none">AxisMomentOrPointX</span><span data-if="com" style="display:none">AxisMomentOrPointX</span><span data-if="dotnet" style="display:none">axisMomentOrPointX</span><span data-if="python" style="display:none">axis_moment_or_point_x</span></code></i></a>,
<a href="#AxisMomentOrPointY"><i><code><span data-if="hdevelop" style="display:inline">AxisMomentOrPointY</span><span data-if="c" style="display:none">AxisMomentOrPointY</span><span data-if="cpp" style="display:none">AxisMomentOrPointY</span><span data-if="com" style="display:none">AxisMomentOrPointY</span><span data-if="dotnet" style="display:none">axisMomentOrPointY</span><span data-if="python" style="display:none">axis_moment_or_point_y</span></code></i></a>, <a href="#AxisMomentOrPointZ"><i><code><span data-if="hdevelop" style="display:inline">AxisMomentOrPointZ</span><span data-if="c" style="display:none">AxisMomentOrPointZ</span><span data-if="cpp" style="display:none">AxisMomentOrPointZ</span><span data-if="com" style="display:none">AxisMomentOrPointZ</span><span data-if="dotnet" style="display:none">axisMomentOrPointZ</span><span data-if="python" style="display:none">axis_moment_or_point_z</span></code></i></a>, <a href="#Rotation"><i><code><span data-if="hdevelop" style="display:inline">Rotation</span><span data-if="c" style="display:none">Rotation</span><span data-if="cpp" style="display:none">Rotation</span><span data-if="com" style="display:none">Rotation</span><span data-if="dotnet" style="display:none">rotation</span><span data-if="python" style="display:none">rotation</span></code></i></a>,
and <a href="#Translation"><i><code><span data-if="hdevelop" style="display:inline">Translation</span><span data-if="c" style="display:none">Translation</span><span data-if="cpp" style="display:none">Translation</span><span data-if="com" style="display:none">Translation</span><span data-if="dotnet" style="display:none">translation</span><span data-if="python" style="display:none">translation</span></code></i></a>.
</p>
<p>For convenience reasons, it is also possible to query the point
on the screw axis that is closest to the origin instead of the moment of the
screw axis. For this, <a href="#ScrewFormat"><i><code><span data-if="hdevelop" style="display:inline">ScrewFormat</span><span data-if="c" style="display:none">ScrewFormat</span><span data-if="cpp" style="display:none">ScrewFormat</span><span data-if="com" style="display:none">ScrewFormat</span><span data-if="dotnet" style="display:none">screwFormat</span><span data-if="python" style="display:none">screw_format</span></code></i></a> must be set to <i><span data-if="hdevelop" style="display:inline">'point'</span><span data-if="c" style="display:none">"point"</span><span data-if="cpp" style="display:none">"point"</span><span data-if="com" style="display:none">"point"</span><span data-if="dotnet" style="display:none">"point"</span><span data-if="python" style="display:none">"point"</span></i>.
In this case, the coordinates of the point are returned in
<a href="#AxisMomentOrPointX"><i><code><span data-if="hdevelop" style="display:inline">AxisMomentOrPointX</span><span data-if="c" style="display:none">AxisMomentOrPointX</span><span data-if="cpp" style="display:none">AxisMomentOrPointX</span><span data-if="com" style="display:none">AxisMomentOrPointX</span><span data-if="dotnet" style="display:none">axisMomentOrPointX</span><span data-if="python" style="display:none">axis_moment_or_point_x</span></code></i></a>, <a href="#AxisMomentOrPointY"><i><code><span data-if="hdevelop" style="display:inline">AxisMomentOrPointY</span><span data-if="c" style="display:none">AxisMomentOrPointY</span><span data-if="cpp" style="display:none">AxisMomentOrPointY</span><span data-if="com" style="display:none">AxisMomentOrPointY</span><span data-if="dotnet" style="display:none">axisMomentOrPointY</span><span data-if="python" style="display:none">axis_moment_or_point_y</span></code></i></a>, and
<a href="#AxisMomentOrPointZ"><i><code><span data-if="hdevelop" style="display:inline">AxisMomentOrPointZ</span><span data-if="c" style="display:none">AxisMomentOrPointZ</span><span data-if="cpp" style="display:none">AxisMomentOrPointZ</span><span data-if="com" style="display:none">AxisMomentOrPointZ</span><span data-if="dotnet" style="display:none">axisMomentOrPointZ</span><span data-if="python" style="display:none">axis_moment_or_point_z</span></code></i></a>.</p>
<h2 id="sec_attention">注意</h2>
<p><code><span data-if="hdevelop" style="display:inline">dual_quat_to_screw</span><span data-if="c" style="display:none">dual_quat_to_screw</span><span data-if="cpp" style="display:none">DualQuatToScrew</span><span data-if="com" style="display:none">DualQuatToScrew</span><span data-if="dotnet" style="display:none">DualQuatToScrew</span><span data-if="python" style="display:none">dual_quat_to_screw</span></code> assumes that the input <a href="#DualQuaternion"><i><code><span data-if="hdevelop" style="display:inline">DualQuaternion</span><span data-if="c" style="display:none">DualQuaternion</span><span data-if="cpp" style="display:none">DualQuaternion</span><span data-if="com" style="display:none">DualQuaternion</span><span data-if="dotnet" style="display:none">dualQuaternion</span><span data-if="python" style="display:none">dual_quaternion</span></code></i></a>
is a unit dual quaternion, and hence represents a 3D rigid
transformation. Otherwise the returned screw parameters are not meaningful.
Further note that the screw axis for an identity transformation, i.e.,
no rotation and no translation, is undefined. In this case
<span title="1" style="vertical-align:-0.0742808em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="0.734713em" height="0.773562em" viewBox="0 0 11.755402 12.376999">
<!-- Original BoundingBox: -5.877701 -6.188507 5.877701 6.188492 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHptmr8r_76">
      <path style="fill-rule: evenodd;" d="M573.000000 -174.000000C556.000000 -136.000000,542.000000 -113.000000,527.000000 -96.000000C492.000000 -57.000000,437.000000 -39.000000,354.000000 -39.000000L287.000000 -39.000000C214.000000 -39.000000,201.000000 -45.000000,201.000000 -80.000000L201.000000 -553.000000C201.000000 -624.000000,215.000000 -638.000000,294.000000 -643.000000L294.000000 -662.000000L12.000000 -662.000000L12.000000 -643.000000C86.000000 -637.000000,99.000000 -623.000000,99.000000 -553.000000L99.000000 -109.000000C99.000000 -39.000000,85.000000 -24.000000,12.000000 -19.000000L12.000000 -0.000000L550.000000 -0.000000L598.000000 -174.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.138290 11.188507)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_76"></use>
  </g>
</svg></span> is arbitrarily set to <span title="2" style="vertical-align:-0.35515em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="3.90845em" height="1.21216em" viewBox="0 0 62.535263 19.394485">
<!-- Original BoundingBox: -31.267639 -9.697235 31.267624 9.697250 -->
  <defs>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_84">
      <path style="fill-rule: evenodd;" d="M486.000000 -605.000000C493.000000 -634.000000,495.000000 -637.000000,517.000000 -639.000000C522.000000 -640.000000,557.000000 -640.000000,577.000000 -640.000000C638.000000 -640.000000,664.000000 -640.000000,689.000000 -632.000000C734.000000 -618.000000,736.000000 -589.000000,736.000000 -553.000000C736.000000 -537.000000,736.000000 -524.000000,729.000000 -472.000000L727.000000 -461.000000C727.000000 -451.000000,734.000000 -446.000000,744.000000 -446.000000C759.000000 -446.000000,761.000000 -455.000000,763.000000 -471.000000L790.000000 -662.000000C790.000000 -676.000000,778.000000 -676.000000,760.000000 -676.000000L145.000000 -676.000000C120.000000 -676.000000,118.000000 -676.000000,111.000000 -655.000000L48.000000 -478.000000C47.000000 -474.000000,43.000000 -465.000000,43.000000 -460.000000C43.000000 -456.000000,45.000000 -446.000000,60.000000 -446.000000C73.000000 -446.000000,75.000000 -451.000000,81.000000 -470.000000C139.000000 -630.000000,172.000000 -640.000000,324.000000 -640.000000L366.000000 -640.000000C396.000000 -640.000000,397.000000 -639.000000,397.000000 -630.000000C397.000000 -629.000000,397.000000 -624.000000,393.000000 -609.000000L261.000000 -83.000000C252.000000 -46.000000,249.000000 -36.000000,144.000000 -36.000000C108.000000 -36.000000,99.000000 -36.000000,99.000000 -14.000000C99.000000 -11.000000,101.000000 -0.000000,116.000000 -0.000000C144.000000 -0.000000,174.000000 -3.000000,202.000000 -3.000000C230.000000 -3.000000,260.000000 -4.000000,288.000000 -4.000000C316.000000 -4.000000,350.000000 -4.000000,378.000000 -3.000000C405.000000 -2.000000,435.000000 -0.000000,462.000000 -0.000000C470.000000 -0.000000,485.000000 -0.000000,485.000000 -22.000000C485.000000 -36.000000,475.000000 -36.000000,444.000000 -36.000000C425.000000 -36.000000,405.000000 -37.000000,386.000000 -38.000000C352.000000 -41.000000,350.000000 -45.000000,350.000000 -57.000000C350.000000 -64.000000,350.000000 -66.000000,354.000000 -80.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_40">
      <path style="fill-rule: evenodd;" d="M331.000000 240.000000C331.000000 237.000000,331.000000 235.000000,314.000000 218.000000C189.000000 92.000000,157.000000 -97.000000,157.000000 -250.000000C157.000000 -424.000000,195.000000 -598.000000,318.000000 -723.000000C331.000000 -735.000000,331.000000 -737.000000,331.000000 -740.000000C331.000000 -747.000000,327.000000 -750.000000,321.000000 -750.000000C311.000000 -750.000000,221.000000 -682.000000,162.000000 -555.000000C111.000000 -445.000000,99.000000 -334.000000,99.000000 -250.000000C99.000000 -172.000000,110.000000 -51.000000,165.000000 62.000000C225.000000 185.000000,311.000000 250.000000,321.000000 250.000000C327.000000 250.000000,331.000000 247.000000,331.000000 240.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_41">
      <path style="fill-rule: evenodd;" d="M289.000000 -250.000000C289.000000 -328.000000,278.000000 -449.000000,223.000000 -562.000000C163.000000 -685.000000,77.000000 -750.000000,67.000000 -750.000000C61.000000 -750.000000,57.000000 -746.000000,57.000000 -740.000000C57.000000 -737.000000,57.000000 -735.000000,76.000000 -717.000000C174.000000 -618.000000,231.000000 -459.000000,231.000000 -250.000000C231.000000 -79.000000,194.000000 97.000000,70.000000 223.000000C57.000000 235.000000,57.000000 237.000000,57.000000 240.000000C57.000000 246.000000,61.000000 250.000000,67.000000 250.000000C77.000000 250.000000,167.000000 182.000000,226.000000 55.000000C277.000000 -55.000000,289.000000 -166.000000,289.000000 -250.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_48">
      <path style="fill-rule: evenodd;" d="M460.000000 -320.000000C460.000000 -400.000000,455.000000 -480.000000,420.000000 -554.000000C374.000000 -650.000000,292.000000 -666.000000,250.000000 -666.000000C190.000000 -666.000000,117.000000 -640.000000,76.000000 -547.000000C44.000000 -478.000000,39.000000 -400.000000,39.000000 -320.000000C39.000000 -245.000000,43.000000 -155.000000,84.000000 -79.000000C127.000000 2.000000,200.000000 22.000000,249.000000 22.000000C303.000000 22.000000,379.000000 1.000000,423.000000 -94.000000C455.000000 -163.000000,460.000000 -241.000000,460.000000 -320.000000M249.000000 -0.000000C210.000000 -0.000000,151.000000 -25.000000,133.000000 -121.000000C122.000000 -181.000000,122.000000 -273.000000,122.000000 -332.000000C122.000000 -396.000000,122.000000 -462.000000,130.000000 -516.000000C149.000000 -635.000000,224.000000 -644.000000,249.000000 -644.000000C282.000000 -644.000000,348.000000 -626.000000,367.000000 -527.000000C377.000000 -471.000000,377.000000 -395.000000,377.000000 -332.000000C377.000000 -257.000000,377.000000 -189.000000,366.000000 -125.000000C351.000000 -30.000000,294.000000 -0.000000,249.000000 -0.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_49">
      <path style="fill-rule: evenodd;" d="M294.000000 -640.000000C294.000000 -664.000000,294.000000 -666.000000,271.000000 -666.000000C209.000000 -602.000000,121.000000 -602.000000,89.000000 -602.000000L89.000000 -571.000000C109.000000 -571.000000,168.000000 -571.000000,220.000000 -597.000000L220.000000 -79.000000C220.000000 -43.000000,217.000000 -31.000000,127.000000 -31.000000L95.000000 -31.000000L95.000000 -0.000000L257.000000 -0.000000L130.000000 -3.000000L217.000000 -3.000000L257.000000 -3.000000L297.000000 -3.000000L384.000000 -3.000000L419.000000 -0.000000L419.000000 -31.000000L387.000000 -31.000000C297.000000 -31.000000,294.000000 -42.000000,294.000000 -79.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_59">
      <path style="fill-rule: evenodd;" d="M203.000000 -1.000000C203.000000 -67.000000,178.000000 -106.000000,139.000000 -106.000000C106.000000 -106.000000,86.000000 -81.000000,86.000000 -53.000000C86.000000 -26.000000,106.000000 -0.000000,139.000000 -0.000000C151.000000 -0.000000,164.000000 -4.000000,174.000000 -13.000000C177.000000 -15.000000,178.000000 -16.000000,179.000000 -16.000000C180.000000 -16.000000,181.000000 -15.000000,181.000000 -1.000000C181.000000 73.000000,146.000000 133.000000,113.000000 166.000000C102.000000 177.000000,102.000000 179.000000,102.000000 182.000000C102.000000 189.000000,107.000000 193.000000,112.000000 193.000000C123.000000 193.000000,203.000000 116.000000,203.000000 -1.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.748352 13.712082)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_40"></use>
    <use xlink:href="#GLYPHcmr10_49" x="3.888963"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,14.917542 13.712082)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_59"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,22.002045 13.712082)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_48"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,29.972153 13.712082)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_59"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,37.056671 13.712082)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_48"></use>
    <use xlink:href="#GLYPHcmr10_41" x="5.000095"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,51.225845 7.927414)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi7_84"></use>
  </g>
</svg></span>.</p>
<h2 id="sec_execution">运行信息</h2>
<ul>
  <li>多线程类型:可重入(与非独占操作符并行运行)。</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  <li>未经并行化处理。</li>
</ul>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="DualQuaternion" class="parname"><b><code><span data-if="hdevelop" style="display:inline">DualQuaternion</span><span data-if="c" style="display:none">DualQuaternion</span><span data-if="cpp" style="display:none">DualQuaternion</span><span data-if="com" style="display:none">DualQuaternion</span><span data-if="dotnet" style="display:none">dualQuaternion</span><span data-if="python" style="display:none">dual_quaternion</span></code></b> (input_control)  </span><span>dual_quaternion <code>→</code> <span data-if="dotnet" style="display:none"><a href="HDualQuaternion.html">HDualQuaternion</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Unit dual quaternion.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="ScrewFormat" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ScrewFormat</span><span data-if="c" style="display:none">ScrewFormat</span><span data-if="cpp" style="display:none">ScrewFormat</span><span data-if="com" style="display:none">ScrewFormat</span><span data-if="dotnet" style="display:none">screwFormat</span><span data-if="python" style="display:none">screw_format</span></code></b> (input_control)  </span><span>string <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">str</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">Format of the screw parameters.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>
    <span data-if="hdevelop" style="display:inline">'moment'</span>
    <span data-if="c" style="display:none">"moment"</span>
    <span data-if="cpp" style="display:none">"moment"</span>
    <span data-if="com" style="display:none">"moment"</span>
    <span data-if="dotnet" style="display:none">"moment"</span>
    <span data-if="python" style="display:none">"moment"</span>
</p>
<p class="pardesc"><span class="parcat">List of values:
      </span><span data-if="hdevelop" style="display:inline">'moment'</span><span data-if="c" style="display:none">"moment"</span><span data-if="cpp" style="display:none">"moment"</span><span data-if="com" style="display:none">"moment"</span><span data-if="dotnet" style="display:none">"moment"</span><span data-if="python" style="display:none">"moment"</span>, <span data-if="hdevelop" style="display:inline">'point'</span><span data-if="c" style="display:none">"point"</span><span data-if="cpp" style="display:none">"point"</span><span data-if="com" style="display:none">"point"</span><span data-if="dotnet" style="display:none">"point"</span><span data-if="python" style="display:none">"point"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="AxisDirectionX" class="parname"><b><code><span data-if="hdevelop" style="display:inline">AxisDirectionX</span><span data-if="c" style="display:none">AxisDirectionX</span><span data-if="cpp" style="display:none">AxisDirectionX</span><span data-if="com" style="display:none">AxisDirectionX</span><span data-if="dotnet" style="display:none">axisDirectionX</span><span data-if="python" style="display:none">axis_direction_x</span></code></b> (output_control)  </span><span>point3d.x <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">float</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">X component of the direction vector of the screw axis.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="AxisDirectionY" class="parname"><b><code><span data-if="hdevelop" style="display:inline">AxisDirectionY</span><span data-if="c" style="display:none">AxisDirectionY</span><span data-if="cpp" style="display:none">AxisDirectionY</span><span data-if="com" style="display:none">AxisDirectionY</span><span data-if="dotnet" style="display:none">axisDirectionY</span><span data-if="python" style="display:none">axis_direction_y</span></code></b> (output_control)  </span><span>point3d.y <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">float</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Y component of the direction vector of the screw axis.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="AxisDirectionZ" class="parname"><b><code><span data-if="hdevelop" style="display:inline">AxisDirectionZ</span><span data-if="c" style="display:none">AxisDirectionZ</span><span data-if="cpp" style="display:none">AxisDirectionZ</span><span data-if="com" style="display:none">AxisDirectionZ</span><span data-if="dotnet" style="display:none">axisDirectionZ</span><span data-if="python" style="display:none">axis_direction_z</span></code></b> (output_control)  </span><span>point3d.z <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">float</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Z component of the direction vector of the screw axis.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="AxisMomentOrPointX" class="parname"><b><code><span data-if="hdevelop" style="display:inline">AxisMomentOrPointX</span><span data-if="c" style="display:none">AxisMomentOrPointX</span><span data-if="cpp" style="display:none">AxisMomentOrPointX</span><span data-if="com" style="display:none">AxisMomentOrPointX</span><span data-if="dotnet" style="display:none">axisMomentOrPointX</span><span data-if="python" style="display:none">axis_moment_or_point_x</span></code></b> (output_control)  </span><span>point3d.x <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">float</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">X component of the moment vector or a point on the
screw axis.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="AxisMomentOrPointY" class="parname"><b><code><span data-if="hdevelop" style="display:inline">AxisMomentOrPointY</span><span data-if="c" style="display:none">AxisMomentOrPointY</span><span data-if="cpp" style="display:none">AxisMomentOrPointY</span><span data-if="com" style="display:none">AxisMomentOrPointY</span><span data-if="dotnet" style="display:none">axisMomentOrPointY</span><span data-if="python" style="display:none">axis_moment_or_point_y</span></code></b> (output_control)  </span><span>point3d.y <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">float</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Y component of the moment vector or a point on the
screw axis.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="AxisMomentOrPointZ" class="parname"><b><code><span data-if="hdevelop" style="display:inline">AxisMomentOrPointZ</span><span data-if="c" style="display:none">AxisMomentOrPointZ</span><span data-if="cpp" style="display:none">AxisMomentOrPointZ</span><span data-if="com" style="display:none">AxisMomentOrPointZ</span><span data-if="dotnet" style="display:none">axisMomentOrPointZ</span><span data-if="python" style="display:none">axis_moment_or_point_z</span></code></b> (output_control)  </span><span>point3d.z <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">float</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Z component of the moment vector or a point on the
screw axis.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Rotation" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Rotation</span><span data-if="c" style="display:none">Rotation</span><span data-if="cpp" style="display:none">Rotation</span><span data-if="com" style="display:none">Rotation</span><span data-if="dotnet" style="display:none">rotation</span><span data-if="python" style="display:none">rotation</span></code></b> (output_control)  </span><span>angle.rad <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">float</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Rotation angle in radians.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Translation" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Translation</span><span data-if="c" style="display:none">Translation</span><span data-if="cpp" style="display:none">Translation</span><span data-if="com" style="display:none">Translation</span><span data-if="dotnet" style="display:none">translation</span><span data-if="python" style="display:none">translation</span></code></b> (output_control)  </span><span>real <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">float</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Translation.</p>
</div>
<h2 id="sec_predecessors">可能的前置算子</h2>
<p>
<code><a href="dual_quat_compose.html"><span data-if="hdevelop" style="display:inline">dual_quat_compose</span><span data-if="c" style="display:none">dual_quat_compose</span><span data-if="cpp" style="display:none">DualQuatCompose</span><span data-if="com" style="display:none">DualQuatCompose</span><span data-if="dotnet" style="display:none">DualQuatCompose</span><span data-if="python" style="display:none">dual_quat_compose</span></a></code>, 
<code><a href="dual_quat_conjugate.html"><span data-if="hdevelop" style="display:inline">dual_quat_conjugate</span><span data-if="c" style="display:none">dual_quat_conjugate</span><span data-if="cpp" style="display:none">DualQuatConjugate</span><span data-if="com" style="display:none">DualQuatConjugate</span><span data-if="dotnet" style="display:none">DualQuatConjugate</span><span data-if="python" style="display:none">dual_quat_conjugate</span></a></code>, 
<code><a href="dual_quat_interpolate.html"><span data-if="hdevelop" style="display:inline">dual_quat_interpolate</span><span data-if="c" style="display:none">dual_quat_interpolate</span><span data-if="cpp" style="display:none">DualQuatInterpolate</span><span data-if="com" style="display:none">DualQuatInterpolate</span><span data-if="dotnet" style="display:none">DualQuatInterpolate</span><span data-if="python" style="display:none">dual_quat_interpolate</span></a></code>
</p>
<h2 id="sec_alternatives">可替代算子</h2>
<p>
<code><a href="dual_quat_to_pose.html"><span data-if="hdevelop" style="display:inline">dual_quat_to_pose</span><span data-if="c" style="display:none">dual_quat_to_pose</span><span data-if="cpp" style="display:none">DualQuatToPose</span><span data-if="com" style="display:none">DualQuatToPose</span><span data-if="dotnet" style="display:none">DualQuatToPose</span><span data-if="python" style="display:none">dual_quat_to_pose</span></a></code>, 
<code><a href="dual_quat_to_hom_mat3d.html"><span data-if="hdevelop" style="display:inline">dual_quat_to_hom_mat3d</span><span data-if="c" style="display:none">dual_quat_to_hom_mat3d</span><span data-if="cpp" style="display:none">DualQuatToHomMat3d</span><span data-if="com" style="display:none">DualQuatToHomMat3d</span><span data-if="dotnet" style="display:none">DualQuatToHomMat3d</span><span data-if="python" style="display:none">dual_quat_to_hom_mat3d</span></a></code>
</p>
<h2 id="sec_see">参考其它</h2>
<p>
<code><a href="pose_to_dual_quat.html"><span data-if="hdevelop" style="display:inline">pose_to_dual_quat</span><span data-if="c" style="display:none">pose_to_dual_quat</span><span data-if="cpp" style="display:none">PoseToDualQuat</span><span data-if="com" style="display:none">PoseToDualQuat</span><span data-if="dotnet" style="display:none">PoseToDualQuat</span><span data-if="python" style="display:none">pose_to_dual_quat</span></a></code>, 
<code><a href="dual_quat_normalize.html"><span data-if="hdevelop" style="display:inline">dual_quat_normalize</span><span data-if="c" style="display:none">dual_quat_normalize</span><span data-if="cpp" style="display:none">DualQuatNormalize</span><span data-if="com" style="display:none">DualQuatNormalize</span><span data-if="dotnet" style="display:none">DualQuatNormalize</span><span data-if="python" style="display:none">dual_quat_normalize</span></a></code>, 
<code><a href="serialize_dual_quat.html"><span data-if="hdevelop" style="display:inline">serialize_dual_quat</span><span data-if="c" style="display:none">serialize_dual_quat</span><span data-if="cpp" style="display:none">SerializeDualQuat</span><span data-if="com" style="display:none">SerializeDualQuat</span><span data-if="dotnet" style="display:none">SerializeDualQuat</span><span data-if="python" style="display:none">serialize_dual_quat</span></a></code>, 
<code><a href="deserialize_dual_quat.html"><span data-if="hdevelop" style="display:inline">deserialize_dual_quat</span><span data-if="c" style="display:none">deserialize_dual_quat</span><span data-if="cpp" style="display:none">DeserializeDualQuat</span><span data-if="com" style="display:none">DeserializeDualQuat</span><span data-if="dotnet" style="display:none">DeserializeDualQuat</span><span data-if="python" style="display:none">deserialize_dual_quat</span></a></code>, 
<code><a href="dual_quat_trans_line_3d.html"><span data-if="hdevelop" style="display:inline">dual_quat_trans_line_3d</span><span data-if="c" style="display:none">dual_quat_trans_line_3d</span><span data-if="cpp" style="display:none">DualQuatTransLine3d</span><span data-if="com" style="display:none">DualQuatTransLine3d</span><span data-if="dotnet" style="display:none">DualQuatTransLine3d</span><span data-if="python" style="display:none">dual_quat_trans_line_3d</span></a></code>, 
<code><a href="dual_quat_trans_point_3d.html"><span data-if="hdevelop" style="display:inline">dual_quat_trans_point_3d</span><span data-if="c" style="display:none">dual_quat_trans_point_3d</span><span data-if="cpp" style="display:none">DualQuatTransPoint3d</span><span data-if="com" style="display:none">DualQuatTransPoint3d</span><span data-if="dotnet" style="display:none">DualQuatTransPoint3d</span><span data-if="python" style="display:none">dual_quat_trans_point_3d</span></a></code>, 
<code><a href="screw_to_dual_quat.html"><span data-if="hdevelop" style="display:inline">screw_to_dual_quat</span><span data-if="c" style="display:none">screw_to_dual_quat</span><span data-if="cpp" style="display:none">ScrewToDualQuat</span><span data-if="com" style="display:none">ScrewToDualQuat</span><span data-if="dotnet" style="display:none">ScrewToDualQuat</span><span data-if="python" style="display:none">screw_to_dual_quat</span></a></code>
</p>
<h2 id="sec_module">模块</h2>
<p>
Foundation</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
